home *** CD-ROM | disk | FTP | other *** search
- /*******************************************************************
-
- DOExchange.h
-
- *********************************************************************/
-
- #include "includes/Project.h"
-
- #define CONFIG_FILE "DOpus5:Settings/DOExchange.prefs"
-
- /********************************************************************/
- // some defines for IPC_Commands
- // our template was
- // "Hide/S,Show/S,BGC=BackgroundColour/N,TC=TextColour/N,N=NewName/K,Quit/S"
-
- #define IPCCMD_HIDE 1 << 0
- #define IPCCMD_SHOW 1 << 1
- #define IPCCMD_BGC 1 << 2
- #define IPCCMD_TC 1 << 3
- #define IPCCMD_NAME 1 << 4
- #define IPCCMD_QUIT 1 << 5
-
- #define ARG_BGC fargs->FA_Arguments[2]
- #define ARG_TC fargs->FA_Arguments[3]
- #define ARG_NAME fargs->FA_Arguments[4]
-
- #define POPID_SAVE 0xFFF0
- #define POPID_QUIT 0xFFF1
-
- #define CXID_USER 100
-
- /********************************************************************/
- // some structures
-
- // since the Amiga developers did mean noone else should do an
- // Exchange program, the next both structures are the results of some
- // experiments and may (does) not match the real structures,
- // but I think I've got what I need :)
-
- // a kind of CxMsg
- typedef struct
- {
- struct Message msg; // ln_Type should be NT_MESSAGE
-
- ULONG a;
- ULONG ID; // message id
- UBYTE c;
- UBYTE d;
- UBYTE Code; // message type
-
- } FakeMsg;
-
- // a kind of CxObj
- typedef struct
- {
- char dummy1[14];
- UBYTE flags;
- char dummy2[125];
- struct MsgPort *cx_port;
- } CX_OBJ;
-
-
- // and now back to "normal" stuctures
- typedef struct _SubMenu_Node
- {
- struct MinNode minnode;
- struct MinList submenu;
-
- } SubMenu_Node;
-
- typedef struct _DOE_Data
- {
- ULONG a4;
- struct Library *module;
- struct Library *library;
- IPCData *ipc;
-
- APTR messages;
-
- APTR notify_handle;
- struct MsgPort *notify_port;
-
- struct Screen *screen;
-
- struct NewBroker nb;
-
- struct MsgPort *sender;
- FakeMsg *fmsg;
-
- PopUpMenu popmenu;
- PopUpItem *popitem;
- PopUpItem *compare;
-
- struct MinList submenus;
- SubMenu_Node *submenu_node;
-
- struct Node *ptr_node;
-
- ULONG entry_count;
- ULONG signals;
- BOOL stop;
- USHORT flags;
-
- CxObj *our_cxobj;
- CxObj *filter;
- CxObj *new_obj;
-
- struct Window *win;
- WindowID id;
- struct IBox ibox;
- struct IntuiText itext;
- char name[16];
-
- } DOE_Data;
-
- typedef struct _PassData
- {
- UBYTE FrontPen;
- UBYTE BackPen;
- STRPTR name;
-
- } PassData;
-
-
- struct Gadget draggadget =
- {
- NULL,
- 0, 0, 0, 0,
- GFLG_GADGHNONE | GFLG_RELWIDTH | GFLG_RELHEIGHT,
- GACT_RELVERIFY, GTYP_WDRAGGING,
- NULL, NULL, NULL, NULL,
- NULL, NULL, NULL
- };
-
- void DOExchange( STRPTR args, struct Screen *screen, IPCData *ipc );
-